// // To parse this JSON data, do
// //
// //     final emMessage = emMessageFromJson(jsonString);
//
// import 'dart:convert';
//
// List<EMMessage> emMessageFromJson(String str) => List<EMMessage>.from(json.decode(str).map((x) => EMMessage.fromJson(x)));
//
// String emMessageToJson(List<EMMessage> data) => json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
//
// class EMMessage {
//   Body? body;
//   int? status;
//   String? messageId;
//   Ext? ext;
//   String? from;
//   int? timestamp;
//   int? direction;
//   String? conversationId;
//   String? to;
//
//   EMMessage({
//     this.body,
//     this.status,
//     this.messageId,
//     this.ext,
//     this.from,
//     this.timestamp,
//     this.direction,
//     this.conversationId,
//     this.to,
//   });
//
//   factory EMMessage.fromJson(Map<String, dynamic> json) => EMMessage(
//     body: Body.fromJson(json["body"]),
//     status: json["status"],
//     messageId: json["messageId"],
//     ext: Ext.fromJson(json["ext"]),
//     from: json["from"],
//     timestamp: json["timestamp"],
//     direction: json["direction"],
//     conversationId: json["conversationId"],
//     to: json["to"],
//   );
//
//   Map<String, dynamic> toJson() => {
//     "body": body?.toJson(),
//     "status": status,
//     "messageId": messageId,
//     "ext": ext?.toJson(),
//     "from": from,
//     "timestamp": timestamp,
//     "direction": direction,
//     "conversationId": conversationId,
//     "to": to,
//   };
// }
//
// class Body {
//   String? text;
//
//   Body({
//     this.text,
//   });
//
//   factory Body.fromJson(Map<String, dynamic> json) => Body(
//     text: json["text"],
//   );
//
//   Map<String, dynamic> toJson() => {
//     "text": text,
//   };
// }
//
// class Ext {
//   Weichat? weichat;
//
//   Ext({
//     this.weichat,
//   });
//
//   factory Ext.fromJson(Map<String, dynamic> json) => Ext(
//     weichat: Weichat.fromJson(json["weichat"]),
//   );
//
//   Map<String, dynamic> toJson() => {
//     "weichat": weichat?.toJson(),
//   };
// }
//
// class Weichat {
//   dynamic recallMsgId;
//   HtmlSafeBody? htmlSafeBody;
//   dynamic interactiveFlag;
//   dynamic originType;
//   dynamic agentUsername;
//   OfficialAccount? officialAccount;
//   dynamic reserveQueue;
//   dynamic extRobot;
//   dynamic visitorLanguage;
//   Agent? agent;
//   dynamic weichatInteractiveFlag;
//   int? queueId;
//   dynamic metadata;
//   dynamic businessFlag;
//   dynamic ackForMsgId;
//   String? msgIdForAck;
//   dynamic transferToHumanButtonInfo;
//   dynamic replyMsg;
//   dynamic recallFlag;
//   dynamic marketing;
//   dynamic visitor;
//   dynamic callcenter;
//   dynamic matchFlag;
//   bool? hideFlag;
//   dynamic ctrlType;
//   String? queueName;
//   dynamic iframeId;
//   dynamic event;
//   ServiceSession? serviceSession;
//   dynamic routingRuleFlag;
//   dynamic translatedMsg;
//   dynamic language;
//   String? msgId;
//   dynamic ctrlArgs;
//
//   Weichat({
//     this.recallMsgId,
//     this.htmlSafeBody,
//     this.interactiveFlag,
//     this.originType,
//     this.agentUsername,
//     this.officialAccount,
//     this.reserveQueue,
//     this.extRobot,
//     this.visitorLanguage,
//     this.agent,
//     this.weichatInteractiveFlag,
//     this.queueId,
//     this.metadata,
//     this.businessFlag,
//     this.ackForMsgId,
//     this.msgIdForAck,
//     this.transferToHumanButtonInfo,
//     this.replyMsg,
//     this.recallFlag,
//     this.marketing,
//     this.visitor,
//     this.callcenter,
//     this.matchFlag,
//     this.hideFlag,
//     this.ctrlType,
//     this.queueName,
//     this.iframeId,
//     this.event,
//     this.serviceSession,
//     this.routingRuleFlag,
//     this.translatedMsg,
//     this.language,
//     this.msgId,
//     this.ctrlArgs,
//   });
//
//   factory Weichat.fromJson(Map<String, dynamic> json) => Weichat(
//     recallMsgId: json["recall_msg_id"],
//     htmlSafeBody: HtmlSafeBody.fromJson(json["html_safe_body"]),
//     interactiveFlag: json["InteractiveFlag"],
//     originType: json["originType"],
//     agentUsername: json["agentUsername"],
//     officialAccount: OfficialAccount.fromJson(json["official_account"]),
//     reserveQueue: json["reserve_queue"],
//     extRobot: json["extRobot"],
//     visitorLanguage: json["visitorLanguage"],
//     agent: Agent.fromJson(json["agent"]),
//     weichatInteractiveFlag: json["interactiveFlag"],
//     queueId: json["queueId"],
//     metadata: json["metadata"],
//     businessFlag: json["businessFlag"],
//     ackForMsgId: json["ack_for_msg_id"],
//     msgIdForAck: json["msg_id_for_ack"],
//     transferToHumanButtonInfo: json["transferToHumanButtonInfo"],
//     replyMsg: json["replyMsg"],
//     recallFlag: json["recall_flag"],
//     marketing: json["marketing"],
//     visitor: json["visitor"],
//     callcenter: json["callcenter"],
//     matchFlag: json["match_flag"],
//     hideFlag: json["hide_flag"],
//     ctrlType: json["ctrlType"],
//     queueName: json["queueName"],
//     iframeId: json["iframeId"],
//     event: json["event"],
//     serviceSession: ServiceSession.fromJson(json["service_session"]),
//     routingRuleFlag: json["routingRuleFlag"],
//     translatedMsg: json["translatedMsg"],
//     language: json["language"],
//     msgId: json["msgId"],
//     ctrlArgs: json["ctrlArgs"],
//   );
//
//   Map<String, dynamic> toJson() => {
//     "recall_msg_id": recallMsgId,
//     "html_safe_body": htmlSafeBody?.toJson(),
//     "InteractiveFlag": interactiveFlag,
//     "originType": originType,
//     "agentUsername": agentUsername,
//     "official_account": officialAccount?.toJson(),
//     "reserve_queue": reserveQueue,
//     "extRobot": extRobot,
//     "visitorLanguage": visitorLanguage,
//     "agent": agent?.toJson(),
//     "interactiveFlag": weichatInteractiveFlag,
//     "queueId": queueId,
//     "metadata": metadata,
//     "businessFlag": businessFlag,
//     "ack_for_msg_id": ackForMsgId,
//     "msg_id_for_ack": msgIdForAck,
//     "transferToHumanButtonInfo": transferToHumanButtonInfo,
//     "replyMsg": replyMsg,
//     "recall_flag": recallFlag,
//     "marketing": marketing,
//     "visitor": visitor,
//     "callcenter": callcenter,
//     "match_flag": matchFlag,
//     "hide_flag": hideFlag,
//     "ctrlType": ctrlType,
//     "queueName": queueName,
//     "iframeId": iframeId,
//     "event": event,
//     "service_session": serviceSession?.toJson(),
//     "routingRuleFlag": routingRuleFlag,
//     "translatedMsg": translatedMsg,
//     "language": language,
//     "msgId": msgId,
//     "ctrlArgs": ctrlArgs,
//   };
// }
//
// class Agent {
//   dynamic agentNumber;
//   dynamic userType;
//   dynamic trueName;
//   dynamic userId;
//   String? userNickname;
//   String? avatar;
//
//   Agent({
//     this.agentNumber,
//     this.userType,
//     this.trueName,
//     this.userId,
//     this.userNickname,
//     this.avatar,
//   });
//
//   factory Agent.fromJson(Map<String, dynamic> json) => Agent(
//     agentNumber: json["agentNumber"],
//     userType: json["userType"],
//     trueName: json["trueName"],
//     userId: json["userId"],
//     userNickname: json["userNickname"],
//     avatar: json["avatar"],
//   );
//
//   Map<String, dynamic> toJson() => {
//     "agentNumber": agentNumber,
//     "userType": userType,
//     "trueName": trueName,
//     "userId": userId,
//     "userNickname": userNickname,
//     "avatar": avatar,
//   };
// }
//
// class HtmlSafeBody {
//   String? msg;
//   String? type;
//
//   HtmlSafeBody({
//     this.msg,
//     this.type,
//   });
//
//   factory HtmlSafeBody.fromJson(Map<String, dynamic> json) => HtmlSafeBody(
//     msg: json["msg"],
//     type: json["type"],
//   );
//
//   Map<String, dynamic> toJson() => {
//     "msg": msg,
//     "type": type,
//   };
// }
//
// class OfficialAccount {
//   String? officialAccountId;
//   String? type;
//   String? name;
//   ScheduleInfo? scheduleInfo;
//
//   OfficialAccount({
//     this.officialAccountId,
//     this.type,
//     this.name,
//     this.scheduleInfo,
//   });
//
//   factory OfficialAccount.fromJson(Map<String, dynamic> json) => OfficialAccount(
//     officialAccountId: json["official_account_id"],
//     type: json["type"],
//     name: json["name"],
//     scheduleInfo: ScheduleInfo.fromJson(json["schedule_info"]),
//   );
//
//   Map<String, dynamic> toJson() => {
//     "official_account_id": officialAccountId,
//     "type": type,
//     "name": name,
//     "schedule_info": scheduleInfo?.toJson(),
//   };
// }
//
// class ScheduleInfo {
//   ScheduleInfo();
//
//   factory ScheduleInfo.fromJson(Map<String, dynamic> json) => ScheduleInfo(
//   );
//
//   Map<String, dynamic> toJson() => {
//   };
// }
//
// class ServiceSession {
//   bool? expire;
//   int? agentUserType;
//   String? serviceSessionId;
//   bool? transferToTickets;
//   int? categoryId;
//   int? messageSeqId;
//   int? robotId;
//   String? state;
//   String? agentUserId;
//
//   ServiceSession({
//     this.expire,
//     this.agentUserType,
//     this.serviceSessionId,
//     this.transferToTickets,
//     this.categoryId,
//     this.messageSeqId,
//     this.robotId,
//     this.state,
//     this.agentUserId,
//   });
//
//   factory ServiceSession.fromJson(Map<String, dynamic> json) => ServiceSession(
//     expire: json["expire"],
//     agentUserType: json["agentUserType"],
//     serviceSessionId: json["serviceSessionId"],
//     transferToTickets: json["transferToTickets"],
//     categoryId: json["categoryId"],
//     messageSeqId: json["messageSeqId"],
//     robotId: json["robotId"],
//     state: json["state"],
//     agentUserId: json["agentUserId"],
//   );
//
//   Map<String, dynamic> toJson() => {
//     "expire": expire,
//     "agentUserType": agentUserType,
//     "serviceSessionId": serviceSessionId,
//     "transferToTickets": transferToTickets,
//     "categoryId": categoryId,
//     "messageSeqId": messageSeqId,
//     "robotId": robotId,
//     "state": state,
//     "agentUserId": agentUserId,
//   };
// }
